Many application programs provide video output, e.g. display of images on a computer monitor, during execution. Such video output is controlled, in part, by a software module called a display driver and hardware component which connects to the monitor called a video card. The display driver receives requests from the application program and translates the requests into instructions that are understood by the video card. The video card executes the instructions, which process results in desired images being rendered and displayed on the monitor.
A frame is static display of images on the monitor at a particular time. Animation, i.e. moving images, is achieved by rendering and displaying successive frames. Some application programs, such as certain games, rely heavily upon animation during execution. The performance of these applications programs on a computer system depends, in part, upon how well that system is able to display the desired animations while the application executes. This depends in large part on the quality of the video interface.
Video interfaces are rated using certain metrics. One example of a metric is a measured frames per second (FPS). The measured FPS value is obtained by executing a portion of an application that uses video output to determine how many frames are displayed over time. The number of frames displayed is dived by the time to arrive at the FPS value. Once measured, the FPS value is supposed to provide a comparative measure of the performance that will be achieved using a particular video interface. The larger the FPS value, the better the video interface is supposed to perform.
The measured FPS, however, does not always accurately reflect the relative performance of the video interface. One reason is that the benchmarks used to test and determine FPS for video interfaces may be known in advance by the video interface manufacturer. The manufacturer may optimize the driver used with the video card to perform well when tested with the benchmark. However, such optimizations do not necessarily mean that the driver will perform equally well when executing code other than the benchmark. In fact, the selected optimizations made by the video interface manufacturer may make the video interface unstable and degrade overall performance of the interface.